package com.singularity.common.service;



import com.singularity.common.domain.dto.role.RoleInfoDTO;
import com.singularity.common.domain.dto.role.RoleListDTO;
import com.singularity.common.domain.param.role.RoleAddParam;
import com.singularity.common.domain.param.role.RoleDistributeParam;
import com.singularity.common.domain.param.role.RoleListParam;
import com.singularity.common.domain.param.role.RoleUpdateParam;
import com.singularity.utils.page.ResponseDTOWithPage;

import java.util.List;

/**
 * @author 天
 *
 * @description: 角色接口
 */
public interface RoleService{

    /**
     * 根据用户id获取角色
     * @param userId
     * @return
     */
    List<RoleInfoDTO> getRoleInfo(Integer userId);

    /**
     * 获取角色列表
     * @param roleListParam
     * @return
     */
    ResponseDTOWithPage<RoleListDTO> getRoleList(RoleListParam roleListParam);

    /**
     * 根据id修改角色
     * @param roleUpdateParam
     * @return
     */
    int updateById(RoleUpdateParam roleUpdateParam);

    /**
     * 添加角色
     * @param roleAddParam
     * @return
     */
    boolean insertRole(RoleAddParam roleAddParam);

    /**
     * 给角色分配权限
     * @param roleDistributeParam
     * @return
     */
    boolean distribute(RoleDistributeParam roleDistributeParam);
}
